Aberth method

The Aberth method, or Aberth–Ehrlich method, named after Oliver Aberth[1] and Louis W. Ehrlich[2], is a root-finding algorithm for simultaneous approximation of all the roots of a univariate polynomial.

The fundamental theorem of algebra states that for each polynomial with complex coefficients there are as many roots as the degree of the polynomial. More specifically, each polynomial of degree n is identical to a product of n linear polynomials. The fundamental theorem in itself does not offer an efficient numerical procedure to compute those roots. Numerical algorithms that approximate all roots at once are the Weierstrass–(Durand–Kerner) method and the Aberth–Ehrlich method.

Contents

Description

Let   p(x)=p_nx^n%2Bp_{n-1}x^{n-1}%2B\cdots%2Bp_1x%2Bp_0  be a univariate polynomial of degree n with real or complex coefficients. Then there exist complex numbers z^*_1,\,z^*_2,\dots,z^*_n, the roots of p(x), that give the factorisation:

p(x)=p_n\cdot(x-z^*_1)\cdot(x-z^*_2)\cdots(x-z^*_n).

Although those numbers are unknown, upper and lower bounds of their absolute values are computable from the coefficients of the polynomial. Now one can pick n distinct numbers in the complex plane—randomly or evenly distributed—such that their absolute values obey the same bounds. The set of those numbers is called the initial approximation of the set of roots of p(x).This approximation is iteratively improved by the following procedure.

Let z_1,\dots,z_n\in\mathbb C be the current approximations of the zeros of p(x). Then offset numbers w_1,\dots,w_n\in\mathbb C are computed as

w_k=-\frac{\frac{p(z_k)}{p'(z_k)}}{1-\frac{p(z_k)}{p'(z_k)}\cdot \sum_{j\ne k}\frac1{z_k-z_j}},

where p'(z) is the polynomial derivative of p evaluated in the point z.

The next set of approximations of roots of p(x) is then   z_1%2Bw_1,\dots,z_n%2Bw_n  . One can measure the quality of the current approximation by the values of the polynomial or by the size of the offsets.

Inside the formula of the Aberth method one can find elements of Newton's method and the Weierstrass–(Durand–Kerner) method. Details for an efficient implementation, esp. on the choice of good initial approximations, can be found in Bini (1996)[3].

Derivation from Newton's method

The iteration formula is the univariate Newton iteration for the function

F(x)=\frac{p(x)}{\prod_{j=0;\,j\ne k}^n(x-z_j)}

If the values z_1,\dots,z_n are already close to the roots of p(x), then the rational function F(x) is almost linear with poles at z_1,\dots,z_{k-1},z_{k%2B1},\dots,z_n that direct the Newton iteration away from the roots of p(x) that are close to them. That is, the corresponding bassins of attraction get rather small.

The Newton step in the univariate case is the reciprocal value to the logarithmic derivative

\begin{align}
       \frac{F'(x)}{F(x)}
    &= \frac{d}{dx}\ln|F(x)|\\
    &= \frac{d}{dx}\big(\ln|p(x)|-\sum_{j=0;\,j\ne k}^n\ln|x-z_j|\big)\\
    &= \frac{p'(x)}{p(x)}-\sum_{j=0;\,j\ne k}^n\frac1{x-z_j}
\end{align}

Thus,

z_k'=z_k-\frac{F(x)}{F'(x)}=z_k-\frac1{\frac{p'(z_k)}{p(z_k)}-\sum_{j=0;\,j\ne k}^n\frac1{z_k-z_j}}

results in the Aberth–Ehrlich iteration.

The iteration may be executed in a simultaneous Jacobi-like iteration where first all new approximations are computed from the old approximations or in a sequential Gauss–Seidel-like iteration that uses each new approximation from the time it is computed.

Literature

  1. ^ Aberth, Oliver (1973). "Iteration methods for finding all zeros of a polynomial simultaneously". Math. Comp. (Mathematics of Computation, Vol. 27, No. 122) 27 (122): 339–344. doi:10.2307/2005621. JSTOR 2005621. 
  2. ^ Ehrlich, Louis W. (1967). "A modified Newton method for polynomials". Comm. ACM 10 (2): 107–108. doi:10.1145/363067.363115. 
  3. ^ Bini, Dario Andrea (1996). "Numerical computation of polynomial zeros by means of Aberth's method". Numerical Algorithms 13 (2): 179–200. doi:10.1007/BF02207694. http://www.springerlink.com/content/b35647833p354348. 

See also